package com.sam.query.mould.simple.domain;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Product entity.
 * @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "Product", uniqueConstraints = @UniqueConstraint(columnNames = "associatedID"))
public class Product implements java.io.Serializable {

	// Fields

	private static final long serialVersionUID = 1L;
	private String id;
	private String productName;
	private String projectId;
	private String productPic;
	private String productAmount;
	private Date receiveTime;
	private Date quoteDeadline;
	private Date leadTime;
	private String productState;
	private Integer workflowInstanceId;
	private String productSize;
	private String productWeight;
	private Integer productMaterialId;
	private String mark;
	private Date startTime;
	private Integer workflowInsExecuteId;
	private Integer sequenceNo;
	private String executorId;
	private String workFlowState;
	private Integer followProject;
	private String remark;
	private String checkRemark;
	private String productMaterial;
	private String shrinkRatio;
	private String productType;
	private Byte needStructureDesign;
	private String customerRequirement;
	private Integer productDesignState;
	private String productInteriorId;
	private String productClientId;
	private String userField1;
	private String userField2;
	private String userField3;
	private String userField4;
	private String userField5;
	private String userField6;
	private String userField7;
	private String userField8;
	private String userField9;
	private String userField10;
	private String oldRemark;
	private String associatedId;

	private Project project;

	// Constructors

	/** default constructor */
	public Product() {
	}

	// Property accessors
	@Id
	@Column(name = "productID", unique = true, nullable = false, length = 50)
	public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}

	@Column(name = "productName", nullable = false, length = 50)
	public String getProductName() {
		return this.productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	@Column(name = "projectID", nullable = false, length = 50)
	public String getProjectId() {
		return this.projectId;
	}

	public void setProjectId(String projectId) {
		this.projectId = projectId;
	}

	@Column(name = "productPic", length = 300)
	public String getProductPic() {
		return this.productPic;
	}

	public void setProductPic(String productPic) {
		this.productPic = productPic;
	}

	@Column(name = "productAmount", length = 50)
	public String getProductAmount() {
		return this.productAmount;
	}

	public void setProductAmount(String productAmount) {
		this.productAmount = productAmount;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "receiveTime", length = 23)
	public Date getReceiveTime() {
		return this.receiveTime;
	}

	public void setReceiveTime(Date receiveTime) {
		this.receiveTime = receiveTime;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "quoteDeadline", length = 23)
	public Date getQuoteDeadline() {
		return this.quoteDeadline;
	}

	public void setQuoteDeadline(Date quoteDeadline) {
		this.quoteDeadline = quoteDeadline;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "leadTime", length = 23)
	public Date getLeadTime() {
		return this.leadTime;
	}

	public void setLeadTime(Date leadTime) {
		this.leadTime = leadTime;
	}

	@Column(name = "productState", length = 50)
	public String getProductState() {
		return this.productState;
	}

	public void setProductState(String productState) {
		this.productState = productState;
	}

	@Column(name = "workflowInstanceID")
	public Integer getWorkflowInstanceId() {
		return this.workflowInstanceId;
	}

	public void setWorkflowInstanceId(Integer workflowInstanceId) {
		this.workflowInstanceId = workflowInstanceId;
	}

	@Column(name = "productSize", length = 50)
	public String getProductSize() {
		return this.productSize;
	}

	public void setProductSize(String productSize) {
		this.productSize = productSize;
	}

	@Column(name = "productWeight", length = 50)
	public String getProductWeight() {
		return this.productWeight;
	}

	public void setProductWeight(String productWeight) {
		this.productWeight = productWeight;
	}

	@Column(name = "productMaterialID")
	public Integer getProductMaterialId() {
		return this.productMaterialId;
	}

	public void setProductMaterialId(Integer productMaterialId) {
		this.productMaterialId = productMaterialId;
	}

	@Column(name = "mark", length = 10)
	public String getMark() {
		return this.mark;
	}

	public void setMark(String mark) {
		this.mark = mark;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "startTime", length = 23)
	public Date getStartTime() {
		return this.startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	@Column(name = "workflowInsExecuteID")
	public Integer getWorkflowInsExecuteId() {
		return this.workflowInsExecuteId;
	}

	public void setWorkflowInsExecuteId(Integer workflowInsExecuteId) {
		this.workflowInsExecuteId = workflowInsExecuteId;
	}

	@Column(name = "sequenceNo")
	public Integer getSequenceNo() {
		return this.sequenceNo;
	}

	public void setSequenceNo(Integer sequenceNo) {
		this.sequenceNo = sequenceNo;
	}

	@Column(name = "executorID", length = 50)
	public String getExecutorId() {
		return this.executorId;
	}

	public void setExecutorId(String executorId) {
		this.executorId = executorId;
	}

	@Column(name = "workFlowState", length = 50)
	public String getWorkFlowState() {
		return this.workFlowState;
	}

	public void setWorkFlowState(String workFlowState) {
		this.workFlowState = workFlowState;
	}

	@Column(name = "followProject")
	public Integer getFollowProject() {
		return this.followProject;
	}

	public void setFollowProject(Integer followProject) {
		this.followProject = followProject;
	}

	@Column(name = "remark", length = 200)
	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	@Column(name = "checkRemark", length = 300)
	public String getCheckRemark() {
		return this.checkRemark;
	}

	public void setCheckRemark(String checkRemark) {
		this.checkRemark = checkRemark;
	}

	@Column(name = "productMaterial", length = 50)
	public String getProductMaterial() {
		return this.productMaterial;
	}

	public void setProductMaterial(String productMaterial) {
		this.productMaterial = productMaterial;
	}

	@Column(name = "shrinkRatio", length = 50)
	public String getShrinkRatio() {
		return this.shrinkRatio;
	}

	public void setShrinkRatio(String shrinkRatio) {
		this.shrinkRatio = shrinkRatio;
	}

	@Column(name = "productType", length = 50)
	public String getProductType() {
		return this.productType;
	}

	public void setProductType(String productType) {
		this.productType = productType;
	}

	@Column(name = "needStructureDesign", nullable = false)
	public Byte getNeedStructureDesign() {
		return this.needStructureDesign;
	}

	public void setNeedStructureDesign(Byte needStructureDesign) {
		this.needStructureDesign = needStructureDesign;
	}

	@Column(name = "CustomerRequirement", length = 200)
	public String getCustomerRequirement() {
		return this.customerRequirement;
	}

	public void setCustomerRequirement(String customerRequirement) {
		this.customerRequirement = customerRequirement;
	}

	@Column(name = "productDesignState", nullable = false)
	public Integer getProductDesignState() {
		return this.productDesignState;
	}

	public void setProductDesignState(Integer productDesignState) {
		this.productDesignState = productDesignState;
	}

	@Column(name = "productInteriorID", nullable = false, length = 50)
	public String getProductInteriorId() {
		return this.productInteriorId;
	}

	public void setProductInteriorId(String productInteriorId) {
		this.productInteriorId = productInteriorId;
	}

	@Column(name = "productClientID", length = 50)
	public String getProductClientId() {
		return this.productClientId;
	}

	public void setProductClientId(String productClientId) {
		this.productClientId = productClientId;
	}

	@Column(name = "userField1", length = 50)
	public String getUserField1() {
		return this.userField1;
	}

	public void setUserField1(String userField1) {
		this.userField1 = userField1;
	}

	@Column(name = "userField2", length = 50)
	public String getUserField2() {
		return this.userField2;
	}

	public void setUserField2(String userField2) {
		this.userField2 = userField2;
	}

	@Column(name = "userField3", length = 50)
	public String getUserField3() {
		return this.userField3;
	}

	public void setUserField3(String userField3) {
		this.userField3 = userField3;
	}

	@Column(name = "userField4", length = 50)
	public String getUserField4() {
		return this.userField4;
	}

	public void setUserField4(String userField4) {
		this.userField4 = userField4;
	}

	@Column(name = "userField5", length = 50)
	public String getUserField5() {
		return this.userField5;
	}

	public void setUserField5(String userField5) {
		this.userField5 = userField5;
	}

	@Column(name = "userField6", length = 50)
	public String getUserField6() {
		return this.userField6;
	}

	public void setUserField6(String userField6) {
		this.userField6 = userField6;
	}

	@Column(name = "userField7", length = 50)
	public String getUserField7() {
		return this.userField7;
	}

	public void setUserField7(String userField7) {
		this.userField7 = userField7;
	}

	@Column(name = "userField8", length = 50)
	public String getUserField8() {
		return this.userField8;
	}

	public void setUserField8(String userField8) {
		this.userField8 = userField8;
	}

	@Column(name = "userField9", length = 50)
	public String getUserField9() {
		return this.userField9;
	}

	public void setUserField9(String userField9) {
		this.userField9 = userField9;
	}

	@Column(name = "userField10", length = 50)
	public String getUserField10() {
		return this.userField10;
	}

	public void setUserField10(String userField10) {
		this.userField10 = userField10;
	}

	@Column(name = "oldRemark", length = 4000)
	public String getOldRemark() {
		return this.oldRemark;
	}

	public void setOldRemark(String oldRemark) {
		this.oldRemark = oldRemark;
	}

	@Column(name = "associatedID", unique = true, nullable = false, length = 100)
	public String getAssociatedId() {
		return this.associatedId;
	}

	public void setAssociatedId(String associatedId) {
		this.associatedId = associatedId;
	}

	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "projectId", nullable = false)
	public Project getProject() {
		return project;
	}

	public void setProject(Project project) {
		this.project = project;
	}
}